package Archivos;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JOptionPane;

/*
 * esta clase es la encargada de poder leer el archivo en base a la obtencion de una ruta en particular que se obtiene
 * mediante un JFileChooser, dichas lecturas las almacena en una coleccion de String
 */
public class Lectura {
	
	//Atributos de la clase...
	public ObtieneArchivo Obtiene;//me permite poder mostrar el JFileChooser...
	public String direccion;//me permite poder almacenar la ruta del archivo seleccionado...
	public ArrayList<String> Coleccion;//me permite poder almacenar las lineas del texto que se leera... 
	
	//Constructor de la clase, el cual nos permite poder instanciar los atributos de la clase...
	public Lectura (JButton boton){
		
		this.Obtiene = new ObtieneArchivo();//instancia de ObtieneArchivo...
		this.direccion = this.Obtiene.carga(boton);//guardamos la direccion, esto nos permite poder cambiar el estado de direccion...
		this.Coleccion = new ArrayList<String>();//me permitira poder contener el contenido del archivo...
	}
	
	//metodo que nos permite poder leer desde archivo en el cual retorna una lista con las lineas del archivo almacenado...
	public ArrayList<String> LeerArchivo(){
		
			
		//comenzamos a generar la seccion de codigo que nos permite poder ejecutar la accion de leer el contenido de un archivo de texto 
		try{
			
            // Abrimos el archivo...
            FileInputStream fstream = new FileInputStream(direccion);
            // Creamos el objeto de entrada...
            DataInputStream entrada = new DataInputStream(fstream);
            // Creamos el Buffer de Lectura...
            BufferedReader buffer = new BufferedReader(new InputStreamReader(entrada));
            //variable que nos permite poder almacenar la linea de texto...
            String strLinea;
            // Leer el archivo linea por linea
            while ((strLinea = buffer.readLine()) != null)   {
                // Almacenamos la linea en la coleccion de String dada...
                Coleccion.add(strLinea);
                
            }
            // Cerramos el archivo
            entrada.close();
            
        }catch (Exception e){ //Catch de excepciones
        	
        	JOptionPane.showMessageDialog(null, "Seleccione un archivo con formato valido");
        }
		
		return Coleccion;//retornamos la coleccion con las lineas del archivo ya leidas
	}
}